This invention relates generally to a digital communication system, and more particularly to interleavers and de-interleavers in a wireless digital communication system.
In digital communication, noise and interference cause bit errors to occur during transmission. In order to reduce these bit errors, digital communication systems typically use error control codes that enable the detection and/or correction of the bit errors at the receiver. These error control codes introduce controlled redundancy into the information transmitted over the communication channel, which can be used at the receiver to detect and/or correct the errors in the received signal.
Convolutional codes represent one type of error control code used by digital communication systems to detect and correct bit errors. Convolutional codes effectively detect and correct random bit errors that occur when individual bits in the transmitted bit sequence are corrupted. Random errors are typically isolated and may be caused by noise in the communication channel. However, convolutional codes are susceptible to burst errors, which occur when the receiver receives a series of adjacent or closely spaced bits in error.
To enhance the burst error correction capabilities of error correcting codes, such as convolutional codes, digital communication systems may include an interleaver and de-interleaver. The interleaver maps input bit positions in an input data block to corresponding output bit positions in an output data block according to a known interleaving pattern. As a result, the interleaver reorders the bits to spread the bits over time. This reordering effectively spreads long burst errors over the output data block(s) to make the burst errors appear as independent random bit errors.
Communication systems typically use either a look-up method or a calculation method to perform interleaving and de-interleaving. The look-up method uses an interleaving table containing pre-calculated mapping values for each input bit. The values in the interleaving table map the bits in an input data block to output bit positions in an output data block. As a result, the interleaver/de-interleaver determines the output bit position for each input bit by a simple look-up operation. Implementing the look-up method requires minimal processing resources, but requires a relatively large amount of memory.
The calculation method uses an interleaving algorithm to calculate the output bit positions for each bit in the input data block in real time, and may be used when the mapping function can be expressed in closed form. While the calculation method requires little to no memory, it does require more processing resources.
Memory limitations often constrain the design of chip sets for digital communication systems more than limitations in the available processing resources. Therefore, in such systems, the look-up approach is inappropriate. However, because processing resources have higher power consumption and cost more than memory resources, achieving a better balance between memory and processing resources may help reduce the size and cost of chip sets for digital communications, and particularly for mobile digital communications.